解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问。

您所在的位置:网站首页 winerror5 拒绝访问 解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问。

解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问。

2023-08-26 18:45| 来源: 网络整理| 查看: 265

文章目录 1. 按 2. 实际运用

1. 按

有时候我们使用shutil.rmtree()、os.rmdir()、os.remove()删除文件时会报[WinError 5] 拒绝访问的错误: 如使用os.remove()删除当前文件夹下的'PackageCache\\[email protected]\\Tests\\Editor.meta'时提示

[WinError 5] 拒绝访问。: ‘PackageCache\[email protected]\Tests\Editor.meta’

这个时候我们可以让Python运行cmd命令强制删除此文件:

12import os os.system('del "PackageCache\[email protected]\Tests\Editor.meta" /F')

关于使用CMD命令删除文件或文件夹,可以参考:Windows CMD删除文件或文件夹命令帮助

2. 实际运用

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182import os import shutil dirs = ['.idea', '.vs', 'Logs', 'obj'] files = ['.sln', '.csproj'] dirsCnt = 0 filesCnt = 0 def delWithCmd(path):     try:         if os.path.isfile(path):             cmd = 'del "'+ path + '" /F'             print(cmd)             os.system(cmd)     except Exception as e:         print(e) def deleteDir(dirPath):     global dirsCnt     global filesCnt     for root, dirs, files in os.walk(dirPath, topdown=False):         for name in files:             try:                 filesCnt += 1                 filePath = os.path.join(root, name)                 print('file deleted', filesCnt, filePath)                 os.remove(filePath)             except Exception as e:                 print(e)                 delWithCmd(filePath)         for name in dirs:             try:                 os.rmdir(os.path.join(root, name))                 dirsCnt += 1             except Exception as e:                 print(e)     os.rmdir(dirPath) def delDir(dirPath):     global dirsCnt     shutil.rmtree(dirPath)     dirsCnt += 1     print('dir deleted', dirsCnt, dirPath) def delFile(filePath):     global filesCnt     os.remove(filePath)     filesCnt += 1     print('file deleted', filesCnt, filePath) def delete(path):     try:         if os.path.isfile(path):             delFile(path)         elif os.path.isdir(path):             deleteDir(path)     except Exception as e:         print(e) for proj in os.listdir():     if not os.path.isdir(proj):         continue     os.chdir(proj)     print(os.getcwd())     for p in os.listdir():         if os.path.isdir(p) and p in dirs:             delete(p)         elif os.path.isfile(p) and os.path.splitext(p)[1] in files:             delete(p)     libPath = 'Library'     if os.path.exists(libPath) and os.path.isdir(libPath):         os.chdir(libPath)         for p in os.listdir():             if p == 'LastSceneManagerSetup.txt':                 continue             delete(p)         os.chdir('..')     os.chdir('..')


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3